package com.rc.web.converter;

import com.rc.pojo.dto.address.AddressAddDTO;
import com.rc.pojo.dto.address.AddressUpdateDTO;
import com.rc.pojo.po.Address;
import com.rc.pojo.vo.address.AddressVO;
import org.mapstruct.Mapper;

/**
 * 地址信息转换器
 * 使用MapStruct实现DTO、PO、VO之间的转换
 */
@Mapper(componentModel = "spring") // 声明为Spring组件
public interface AddressConverter {

    /**
     * 将地址PO转换为VO
     * @param address 地址持久化对象
     * @return 地址视图对象
     */
    AddressVO toVO (Address address);

    /**
     * 将新增DTO转换为PO
     * @param addressAddDTO 地址新增数据传输对象
     * @return 地址持久化对象
     */
    Address addDTO2PO(AddressAddDTO addressAddDTO);

    /**
     * 将更新DTO转换为PO
     * @param dto 地址更新数据传输对象
     * @return 地址持久化对象
     */
    Address updateDTO2PO(AddressUpdateDTO dto);
}
